A scheduling system helps a user organize appointments on his or her calendar. Such systems typically include, for example, scheduling software that runs on the user's desktop computer. The user enters the date, time and expected length of various appointments, such as business meetings, and the system determines if there are any conflicts, such as two meetings scheduled on the same date at the same time.
Because the user can enter information into the system weeks in advance, additional information, such as the place where the meeting will take place and the topics that will be discussed, can be stored about each meeting. Similarly, some scheduling systems let a user store a list of other people who will attend the meeting, or “attendees.”
Another feature of known scheduling systems is an automatic reminder function that alerts the user when it is time to attend a meeting. Most scheduling systems are similar to alarm clocks—they display a message on the user's computer screen and/or sound an audible alarm based on the meeting time and the current time of day. Suppose a user enters into the scheduling system a half hour appointment for 10:00 am Monday in the manager's office. After verifying that no other meeting is scheduled from 10:00 am to 10:30 am, the system stores the appointment information. At exactly 10:00 am on Monday, the system reminds the user about the meeting. Some scheduling systems are able to remind the user a fixed period of time, such as 10 minutes, before the start of an appointment.
Although known scheduling systems can be useful, they have several important limitations. For example, a scheduling system may remind a user at 9:50 am that a 10:00 am meeting has been scheduled. If the user realizes that he or she will be late for the meeting because of some last minute business, each of the attendees must be manually notified, such as by calling them on the telephone. This can be a time consuming task, especially when a large number of people are scheduled to be at the meeting.
Another problem with known scheduling systems is that a user is not told in advance that he or she will be late for an appointment; Consider the case where a user has a meeting in another town, and that it usually takes one hour to travel to that town. A user who is still at his or her desk at 9:30 am will probably be late for a 10:00 am meeting, but known scheduling systems do not recognize this fact.
Further, although it might typically take one hour to travel to the other town, there might be a severe rainstorm on that day, in which case it would be more realistic to allow two hours for the user to reach the meeting. Similarly, there may be a traffic accident on the main highway between the two towns. This will also delay the user.
The problem of calculating if a user will be late for an appointment can be even more difficult. Suppose, for example, that a user is scheduled to take an 8:00 am flight to attend a 10:00 am appointment at another airport, and the flight is scheduled to arrive at 9:30 am. If the flight is delayed by less than half an hour, the user will not be late for the appointment. If, however, the flight is delayed by more than half an hour, the user will be late. Moreover, when a user drives to an appointment, it can be difficult to determine if the user will be late because the roads in the area may not lead directly to the appointment location.
Still another problem with known scheduling systems is that the information is typically stored locally on the user's computer. If a user is not near his or her computer, there is no simple way to access the information. Even worse, all of the information in the calender can be lost if there is a computer failure.
In view of the foregoing, it can be appreciated that a substantial need exists for an advanced scheduling system that calculates if a user will be late for an appointment and/or automatically notifies the other attendees when the user will be late, and solves the other problems discussed above.